const fs = require('fs')
const router = require('koa-router')()

function addControllers(dir) {

    // 读取 controllers 目录 下所有文件
    var files = fs.readdirSync(__dirname + '/controllers');

    // 获取 目录下所有js
    var js_files = files.filter((f) => {
        return f.endsWith('.js');
    });

    // 遍历 所有 js，并且 导入相应的js
    for (var method in js_files) {

        var routers = require(__dirname + "/" + dir + "/" + js_files[method])

        // 遍历到 js 导出的 模块
        for (var url in routers) {

            var functionName = "add" + titleCase5(url)

            //  遍历 某个 处理方式
            for (var path in routers[url]) {

                // 添加相应的 router 到 koa-router 中
                router[url](path, routers[url][path])
            }
        }
    }
}

function titleCase5(str) {
    return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
}

module.exports = function (dir) {
    
    let
        controllers_dir = dir || 'controllers'; // 如果不传参数，扫描目录默认为'controllers'

    addControllers(controllers_dir);

    return router.routes();
};